#Lista de pacotes instalados
vetor_pacotes
## [1] "readr" "ggplot2" "plotly" "psych" "e1071"
## [6] "dplyr" "Hmisc" "DescTools" "esquisse" "gridExtra"
## [11] "devtools" "tidyverse" "kableExtra"
O arquivo “MICRODADOS_ENADE_2017.txt” foi obtido em http://portal.inep.gov.br/microdados
(microdados_Enade_2017_portal_2018.10.09.zip)
enade_2017 = read_csv2("MICRODADOS_ENADE_2017.txt")
## ℹ Using ',' as decimal and '.' as grouping mark. Use `read_delim()` for more control.
##
## ── Column specification ────────────────────────────────────────────────────────
## cols(
## .default = col_double(),
## TP_SEXO = col_character(),
## DS_VT_GAB_OFG_ORIG = col_character(),
## DS_VT_GAB_OFG_FIN = col_character(),
## DS_VT_GAB_OCE_ORIG = col_character(),
## DS_VT_GAB_OCE_FIN = col_character(),
## DS_VT_ESC_OFG = col_character(),
## DS_VT_ACE_OFG = col_character(),
## DS_VT_ESC_OCE = col_character(),
## DS_VT_ACE_OCE = col_character(),
## CO_RS_I1 = col_character(),
## CO_RS_I2 = col_character(),
## CO_RS_I3 = col_character(),
## CO_RS_I4 = col_character(),
## CO_RS_I5 = col_character(),
## CO_RS_I6 = col_character(),
## CO_RS_I7 = col_character(),
## CO_RS_I8 = col_character(),
## CO_RS_I9 = col_character(),
## QE_I01 = col_character(),
## QE_I02 = col_character()
## # ... with 36 more columns
## )
## ℹ Use `spec()` for the full column specifications.
# Exibindo uma linha do arquivo MICRODADOS_ENADE_2017.txt
dim(enade_2017)
## [1] 537436 150
NT_OBJ_FG - “Nota bruta na parte objetiva da formação geral. (valor de 0 a 100)” - Variável Quantitativa Contínua, por ser obtida por uma medição. Geralmente representada por números reais.
CO_GRUPO - “Código da área de enquadramento do curso no Enade” - Variável Qualitativa Nominal, por não ser possível determinar uma ordenação.
CO_REGIAO_CURSO - “Código da região de funcionamento do curso” - Variável Qualitativa Nominal, por não ser possível determinar uma ordenação.
QE_I02 - “Qual é a sua cor ou raça?” - Variável Qualitativa Nominal, por não ser possível determinar uma ordenação.
CO_TURNO_GRADUACAO - “Código do turno de graduação” - Variável Qualitativa Nominal, por não ser possível determinar uma ordenação.
QE_I01 - “Qual o seu estado civil?” - Variável Qualitativa Nominal, por não ser possível determinar uma ordenação.
QE_I08 - “Qual a renda total de sua família, incluindo seus rendimentos?” - Variável Quantitativa Contínua, por ser obtida por uma medição. Geralmente representada por números reais.,
QE_I21 - “Alguém em sua família concluiu um curso superior?” - Variavel Qualitativa Ordinal, a qual é possível ordenar.
QE_I22 - “Excetuando-se os livros indicados na bibliografia do seu curso, quantos livros você leu neste ano?” - Por ser uma estimativa (Um ou dois/Mais de oito), eu entendo que seja uma Variável Qualitativa Ordinal. Entretanto, se a quantidade de livros lidos no ano fosse uma informação exata ( Um livro, dois livros) seria uma variável Quantitativa Discreta.
QE_I23 - “Quantas horas por semana, aproximadamente, você dedicou aos estudos, excetuando as horas de aula?” - Por ser uma estimativa (De uma a três/ Mais de doze), eu entendo que seja uma Variável Qualitativa Ordinal. Entretanto, se a quantidade de livros lidos no ano fosse uma informação exata ( Uma hora de estudo, Duas horas de estudo) seria uma variável Quantitativa Discreta.
NU_IDADE - “Idade do inscrito em 26/11/2017” - Variavel Quantitativa Discreta. Por ser obtida a partir da contagem de anos do estudante na data informada.
enade_2017_filtrados = enade_2017 %>% dplyr::select(
NT_OBJ_FG,
NT_OBJ_CE,
NT_GER,
CO_GRUPO,
CO_REGIAO_CURSO,
QE_I02,
CO_TURNO_GRADUACAO,
TP_SEXO,
QE_I01,
QE_I08,
QE_I21,
QE_I22,
QE_I23,
NU_IDADE
)
# Exibindo uma linha do arquivo, filtrando as 11 colunas listadas
dim(enade_2017_filtrados)
## [1] 537436 14
O arquivo “Dicionário de variaveis dos Microdados do Enade_Edição 2017.ods” foi obtido em http://portal.inep.gov.br/microdados
(microdados_Enade_2017_portal_2018.10.09.zip)
O curso escolhido é o curso de “Licenciatura em História”, representado pelo código 2402
enade_historia_2017 = enade_2017_filtrados %>% filter(CO_GRUPO == 2402)
# Licenciatura História 2017 - 18.531 registros
dim(enade_historia_2017)
## [1] 18531 14
#Região
enade_historia_2017 = enade_historia_2017 %>% mutate(
Regiao = case_when(
CO_REGIAO_CURSO == 1 ~ "Norte",
CO_REGIAO_CURSO == 2 ~ "Nordeste",
CO_REGIAO_CURSO == 3 ~ "Sudeste",
CO_REGIAO_CURSO == 4 ~ "Sul",
CO_REGIAO_CURSO == 5 ~ "Centro-Oeste",
TRUE ~ as.character(CO_REGIAO_CURSO)
)
)
#Sexo
enade_historia_2017 = enade_historia_2017 %>% mutate(Sexo = case_when (
TP_SEXO == "M" ~ "Masculino",
TP_SEXO == "F" ~ "Feminino",
TRUE ~ as.character(TP_SEXO)
))
#Estado civil
enade_historia_2017 = enade_historia_2017 %>% mutate(
Estado_Civil = case_when(
QE_I01 == "A" ~ "Solteiro(a)",
QE_I01 == "B" ~ "Casado(a)",
QE_I01 == "C" ~ "Separado(a) judicialmente/divorciado(a)",
QE_I01 == "D" ~ "Viúvo(a)",
QE_I01 == "E" ~ "Outro",
TRUE ~ as.character(QE_I01)
)
)
#Raça / cor
enade_historia_2017 = enade_historia_2017 %>% mutate(
Raca_Cor = case_when(
QE_I02 == "A" ~ "Branca",
QE_I02 == "B" ~ "Preta",
QE_I02 == "C" ~ "Amarela",
QE_I02 == "D" ~ "Parda",
QE_I02 == "E" ~ "Indígena",
QE_I02 == "F" ~ "Não quero declarar",
TRUE ~ as.character(QE_I02)
)
)
#Período
enade_historia_2017 = enade_historia_2017 %>% mutate(
Turno_Graduacao = case_when(
CO_TURNO_GRADUACAO == 1 ~ "Matutino",
CO_TURNO_GRADUACAO == 2 ~ "Vespertino",
CO_TURNO_GRADUACAO == 3 ~ "Integral",
CO_TURNO_GRADUACAO == 4 ~ "Noturno",
TRUE ~ as.character(CO_TURNO_GRADUACAO)
)
)
#Renda total da família
enade_historia_2017 = enade_historia_2017 %>% mutate(
Renda_Familiar = case_when(
QE_I08 == "A" ~ "Até 1,5 salário mínimo (até R$ 1.405,50)",
QE_I08 == "B" ~ "De 1,5 a 3 salários mínimos (R$ 1.405,51 a R$ 2.811,00)",
QE_I08 == "C" ~ "De 3 a 4,5 salários mínimos (R$ 2.811,01 a R$ 4.216,50)",
QE_I08 == "D" ~ "De 4,5 a 6 salários mínimos (R$ 4.216,51 a R$ 5.622,00).",
QE_I08 == "E" ~ "De 6 a 10 salários mínimos (R$ 5.622,01 a R$ 9.370,00)",
QE_I08 == "F" ~ "De 10 a 30 salários mínimos (R$ 9.370,01 a R$ 28.110,00)",
QE_I08 == "G" ~ "Acima de 30 salários mínimos (mais de R$ 28.110,00)",
TRUE ~ as.character(QE_I08)
)
)
#Alguém da família concluiu ensino superior
enade_historia_2017 = enade_historia_2017 %>% mutate(
Alguem_Familia_Ensino_Superior = case_when(
QE_I21 == "A" ~ "Sim",
QE_I21 == "B" ~ "Não",
TRUE ~ as.character(QE_I21)
)
)
#Quantos livros foram lidos em 2017, exceto os livros relacionados ao curso
enade_historia_2017 = enade_historia_2017 %>% mutate(
Livros_Lidos_2017 = case_when(
QE_I22 == "A" ~ "Nenhum",
QE_I22 == "B" ~ "Um ou dois",
QE_I22 == "C" ~ "De três a cinco",
QE_I22 == "D" ~ "De seis a oito",
QE_I22 == "E" ~ "Mais de oito",
TRUE ~ as.character(QE_I22)
)
)
# Quantas horas de estudo por semana. Aproximadamente.
enade_historia_2017 = enade_historia_2017 %>% mutate(
Horas_Estudo_Semana = case_when(
QE_I23 == "A" ~ "Nenhuma, apenas assisto às aulas",
QE_I23 == "B" ~ "De uma a três",
QE_I23 == "C" ~ "De quatro a sete",
QE_I23 == "D" ~ "De oito a doze",
QE_I23 == "E" ~ "Mais de doze",
TRUE ~ as.character(QE_I23)
)
)
# Licenciatura História 2017 com as variáveis de forma legível - 5 registros
kbl(head(enade_historia_2017, 5), caption = "ENADE 2017 - História (Licenciatura) - 5 registros") %>%
kable_styling(bootstrap_options = "striped", full_width = F)
| NT_OBJ_FG | NT_OBJ_CE | NT_GER | CO_GRUPO | NU_IDADE | Regiao | Sexo | Estado_Civil | Raca_Cor | Turno_Graduacao | Renda_Familiar | Alguem_Familia_Ensino_Superior | Livros_Lidos_2017 | Horas_Estudo_Semana |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 12.5 | 37.5 | 29.7 | 2402 | 40 | Centro-Oeste | Feminino | Separado(a) judicialmente/divorciado(a) | Amarela | Matutino | Até 1,5 salário mínimo (até R$ 1.405,50) | Sim | Nenhum | De quatro a sete |
| 50.0 | 45.8 | 45.5 | 2402 | 21 | Centro-Oeste | Masculino | Solteiro(a) | Preta | Matutino | Até 1,5 salário mínimo (até R$ 1.405,50) | Não | Mais de oito | De quatro a sete |
| 75.0 | 62.5 | 65.2 | 2402 | 25 | Centro-Oeste | Feminino | Solteiro(a) | Preta | Matutino | De 1,5 a 3 salários mínimos (R$ 1.405,51 a R$ 2.811,00) | Não | Mais de oito | De oito a doze |
| 37.5 | 66.7 | 55.2 | 2402 | 22 | Centro-Oeste | Feminino | Solteiro(a) | Parda | Matutino | Até 1,5 salário mínimo (até R$ 1.405,50) | Sim | Mais de oito | De quatro a sete |
| 50.0 | 29.2 | 33.7 | 2402 | 24 | Centro-Oeste | Masculino | Solteiro(a) | Branca | Matutino | Até 1,5 salário mínimo (até R$ 1.405,50) | Não | De seis a oito | De quatro a sete |
Utilizando a função describe do pacote Hmisc e a função nativa summary para uma análise descritiva.
Verificando a quantidade de valores ausentes/missing values e os removendo.
#Verificando a quantidade de valores ausentes por variável
valores_ausentes = enade_historia_2017 %>%
select(everything()) %>%
summarise_all(list(~sum(is.na(.))))
valores_ausentes %>% kbl(caption = "Quantidade de valores ausentes por variável") %>% kable_styling(full_width = F, font_size = 14)
| NT_OBJ_FG | NT_OBJ_CE | NT_GER | CO_GRUPO | NU_IDADE | Regiao | Sexo | Estado_Civil | Raca_Cor | Turno_Graduacao | Renda_Familiar | Alguem_Familia_Ensino_Superior | Livros_Lidos_2017 | Horas_Estudo_Semana |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 4012 | 4012 | 4012 | 0 | 0 | 0 | 0 | 3385 | 3385 | 0 | 3385 | 3385 | 3385 | 3385 |
enade_historia_2017_Sem_NA = enade_historia_2017 %>% na.omit()
#Quantidade de itens removidos
dim(enade_historia_2017)[1]
## [1] 18531
dim(enade_historia_2017_Sem_NA)[1]
## [1] 14163
dim(enade_historia_2017)[1] - dim(enade_historia_2017_Sem_NA)[1]
## [1] 4368
Obtemos alguns insights, como nota dos estudantes de História foi 44.34 Aproximadamente 39% dos futuros professores de História estão na região Sudeste. 43% se declara como Branca, têm média de idade de 30 anos. Por fim, o curso de licenciatura em História é bem divido entre homens e mulhes, com 50% dos alunos de cada sexo.
dim(enade_historia_2017_Sem_NA)
## [1] 14163 14
descr = describe(enade_historia_2017_Sem_NA)
descr$NT_OBJ_CE
## NT_OBJ_CE
## n missing distinct Info Mean Gmd .05 .10
## 14163 0 25 0.995 44.34 20.07 16.7 20.8
## .25 .50 .75 .90 .95
## 33.3 45.8 58.3 66.7 75.0
##
## lowest : 0.0 4.2 8.3 12.5 16.7, highest: 83.3 87.5 91.7 95.8 100.0
descr$Regiao
## Regiao
## n missing distinct
## 14163 0 5
##
## lowest : Centro-Oeste Nordeste Norte Sudeste Sul
## highest: Centro-Oeste Nordeste Norte Sudeste Sul
##
## Value Centro-Oeste Nordeste Norte Sudeste Sul
## Frequency 1031 3320 962 5613 3237
## Proportion 0.073 0.234 0.068 0.396 0.229
descr$Raca_Cor
## Raca_Cor
## n missing distinct
## 14163 0 6
##
## lowest : Amarela Branca Indígena Não quero declarar Parda
## highest: Branca Indígena Não quero declarar Parda Preta
##
## Value Amarela Branca Indígena
## Frequency 221 6175 103
## Proportion 0.016 0.436 0.007
##
## Value Não quero declarar Parda Preta
## Frequency 688 4803 2173
## Proportion 0.049 0.339 0.153
descr$Sexo
## Sexo
## n missing distinct
## 14163 0 2
##
## Value Feminino Masculino
## Frequency 7075 7088
## Proportion 0.5 0.5
descr$NU_IDADE
## NU_IDADE
## n missing distinct Info Mean Gmd .05 .10
## 14163 0 58 0.997 30.66 10.44 21 21
## .25 .50 .75 .90 .95
## 23 27 36 45 51
##
## lowest : 19 20 21 22 23, highest: 72 75 77 78 80
summary(enade_historia_2017_Sem_NA$NT_GER)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00 33.10 43.40 43.59 53.90 97.00
enade_historia_2017_Sem_NA %>% select(NT_OBJ_CE) %>%
summarise(
Quantidade = n(),
Media = mean(NT_OBJ_CE),
Mediana = median(NT_OBJ_CE),
Moda = Mode(NT_OBJ_CE),
CV = sd(NT_OBJ_CE) / Media * 100,
Assimetria = skewness(NT_OBJ_CE),
Curtose = kurtosis(NT_OBJ_CE)
) %>% kbl %>%
kable_styling(full_width = F)
| Quantidade | Media | Mediana | Moda | CV | Assimetria | Curtose |
|---|---|---|---|---|---|---|
| 14163 | 44.33507 | 45.8 | 41.7 | 39.76414 | 0.0633972 | -0.4861355 |
Com Mediana > Média > Moda (45.8 > 44.33 > 41.7) , uma distribuição quase simétrica, com uma pequena assimetria positiva (Média - Moda > 0), conforme o cálculo de coeficiente de peason. O coeficiente de variação indica uma alta dispersão na nota bruta. E a medida de curtose indica que, embora os dados estejam próximos da moda, a curva estaria um pouco achatada (Platicúrtica).
hstgrm = ggplot(enade_historia_2017_Sem_NA, aes(x = NT_OBJ_CE)) +
geom_histogram(color = "black",
fill = "green",
bins = 50,
aes(y = (..count..) / sum(..count..))) +
ggtitle("Histograma da nota bruta dos estudantes de Licenciatura em História") +
xlab("nota") +
ylab("Frequência relativa")
ggplotly(hstgrm)
dnsdd = ggplot(enade_historia_2017_Sem_NA, aes(x = NT_OBJ_CE)) +
geom_density(col = 2, size = 1, aes(y = 27 * (..count..) /
sum(..count..))) +
ggtitle("Curva de densidade da nota bruta dos estudantes de História (Licenciatura)") +
xlab("nota") +
ylab("Frequência relativa")
ggplotly(dnsdd)
hstdns = ggplot(enade_historia_2017_Sem_NA, aes(x = NT_OBJ_CE)) +
geom_histogram(color = "black",
fill = "lightblue",
bins = 50,
aes(y = (..count..) / sum(..count..))) +
geom_density(col = 2, size = 1,
aes(y = 27 * (..count..) / sum(..count..))) +
ggtitle("Histograma e curva de densidade da nota dos futuros professores de História") +
xlab("nota") +
ylab("Frequência relativa")
ggplotly(hstdns)
grid.arrange(hstgrm,
dnsdd,
hstdns,
nrow = 3, ncol = 1)
## Continuação das análises
prop.table(table(enade_historia_2017_Sem_NA$Turno_Graduacao,
enade_historia_2017_Sem_NA$Raca_Cor)) %>% kbl %>% kable_styling()
| Amarela | Branca | Indígena | Não quero declarar | Parda | Preta | |
|---|---|---|---|---|---|---|
| Integral | 0.0015533 | 0.0494246 | 0.0013415 | 0.0049425 | 0.0442703 | 0.0129916 |
| Matutino | 0.0026830 | 0.0585328 | 0.0007767 | 0.0067076 | 0.0506249 | 0.0270423 |
| Noturno | 0.0100967 | 0.3058674 | 0.0049425 | 0.0330438 | 0.2205041 | 0.0978606 |
| Vespertino | 0.0012709 | 0.0221704 | 0.0002118 | 0.0038834 | 0.0237238 | 0.0155334 |
enade_historia2 = enade_historia_2017_Sem_NA %>%
select(Turno_Graduacao, Raca_Cor, NT_GER) %>%
group_by(Turno_Graduacao, Raca_Cor) %>%
summarise(
Quantidade = n(),
MediaNota = mean(NT_GER, na.rm = T),
Mediana = median(NT_GER, na.rm = T),
CV = sd(NT_GER, na.rm = T) / MediaNota * 100,
AmplitudeInterquartil = IQR(NT_GER)
) %>%
arrange(Turno_Graduacao, desc(Mediana))
## `summarise()` regrouping output by 'Turno_Graduacao' (override with `.groups` argument)
enade_historia2 %>% kbl %>% kable_styling(full_width = F)
| Turno_Graduacao | Raca_Cor | Quantidade | MediaNota | Mediana | CV | AmplitudeInterquartil |
|---|---|---|---|---|---|---|
| Integral | Branca | 700 | 48.60157 | 48.35 | 32.00419 | 21.725 |
| Integral | Não quero declarar | 70 | 47.57857 | 47.45 | 32.06615 | 19.325 |
| Integral | Parda | 627 | 42.67496 | 42.30 | 34.06646 | 20.850 |
| Integral | Amarela | 22 | 41.61818 | 41.40 | 32.06070 | 16.550 |
| Integral | Preta | 184 | 39.88043 | 39.45 | 37.54678 | 21.900 |
| Integral | Indígena | 19 | 33.67895 | 33.00 | 42.50468 | 15.100 |
| Matutino | Não quero declarar | 95 | 46.59263 | 48.40 | 33.32585 | 24.550 |
| Matutino | Branca | 829 | 46.65103 | 47.10 | 32.34485 | 20.900 |
| Matutino | Amarela | 38 | 45.39474 | 44.85 | 25.85944 | 14.850 |
| Matutino | Parda | 717 | 42.16499 | 41.40 | 33.79268 | 20.300 |
| Matutino | Preta | 383 | 41.66057 | 41.10 | 34.01051 | 18.850 |
| Matutino | Indígena | 11 | 40.26364 | 30.80 | 44.15798 | 25.100 |
| Noturno | Não quero declarar | 468 | 44.98333 | 46.30 | 34.53219 | 21.225 |
| Noturno | Branca | 4332 | 44.68209 | 44.70 | 32.57483 | 21.000 |
| Noturno | Preta | 1386 | 41.83550 | 41.60 | 33.50963 | 19.900 |
| Noturno | Parda | 3123 | 41.41639 | 40.90 | 33.58356 | 19.550 |
| Noturno | Amarela | 143 | 40.14895 | 40.10 | 36.25642 | 19.800 |
| Noturno | Indígena | 70 | 38.42429 | 36.60 | 36.00586 | 21.025 |
| Vespertino | Branca | 314 | 50.09682 | 51.45 | 28.83293 | 21.225 |
| Vespertino | Indígena | 3 | 45.43333 | 44.50 | 35.70099 | 16.200 |
| Vespertino | Parda | 336 | 43.04435 | 42.65 | 32.96029 | 21.300 |
| Vespertino | Não quero declarar | 55 | 42.37455 | 42.50 | 38.82803 | 19.000 |
| Vespertino | Preta | 220 | 41.60136 | 41.95 | 32.53649 | 21.050 |
| Vespertino | Amarela | 18 | 38.56667 | 35.30 | 48.57023 | 30.875 |
Ao agrupar por Turno e Raça, vemos que a maioria dos alunos estuda no período da noite, embora as melhores notas sejam de alunos que estudam a tarde.
enade_historia2 = enade_historia_2017_Sem_NA %>%
select(Raca_Cor, NT_GER) %>%
group_by(Raca_Cor) %>%
summarise(
Quantidade = n(),
MediaNota = mean(NT_GER, na.rm = T),
Mediana = median(NT_GER, na.rm = T),
CV = sd(NT_GER, na.rm = T) / MediaNota * 100,
AmplitudeInterquartil = IQR(NT_GER),
assimetria = skewness(NT_GER),
curtose = kurtosis(NT_GER)
) %>%
arrange(desc(Mediana))
## `summarise()` ungrouping output (override with `.groups` argument)
enade_historia2 %>% kbl %>% kable_styling(full_width = F)
| Raca_Cor | Quantidade | MediaNota | Mediana | CV | AmplitudeInterquartil | assimetria | curtose |
|---|---|---|---|---|---|---|---|
| Não quero declarar | 688 | 45.26105 | 46.6 | 34.45419 | 21.425 | -0.4227013 | 0.2149148 |
| Branca | 6175 | 45.66607 | 45.8 | 32.47281 | 21.200 | -0.0501145 | -0.3195162 |
| Preta | 2173 | 41.61542 | 41.4 | 33.83637 | 20.000 | -0.0500513 | -0.1795425 |
| Parda | 4803 | 41.80633 | 41.3 | 33.65555 | 20.000 | 0.0943885 | -0.3040192 |
| Amarela | 221 | 41.06833 | 40.8 | 35.14934 | 19.800 | 0.1008589 | -0.3321779 |
| Indígena | 103 | 37.94951 | 34.6 | 37.96446 | 21.350 | 0.3591805 | -0.2948438 |
Quando analisamos somente por Raça/Cor, fica demonstrado que pessoas que se declaram Brancas têm uma média mais alta (45.6), e até 50% destes, ficou, ligeiramente, acima da média (45.8).
Pode-se destacar também a pouca quantidade de estudantes de origem Indígena.
#Histograma
histograma = ggplot(enade_historia_2017_Sem_NA, aes(x = NT_GER, fill = Raca_Cor)) +
geom_histogram() +
ggtitle("Gráfico histograma da Nota por raça/cor") +
xlab("Notas") +
ylab("Frequência simples") +
facet_grid( ~ Raca_Cor)
ggplotly(histograma)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
boxplot = ggplot(enade_historia_2017_Sem_NA, aes(x = Raca_Cor, y = NT_GER, fill =
Raca_Cor)) +
geom_boxplot() +
ggtitle("Gráfico de Box-plot da Nota por raça/cor e turno de estudo") +
xlab("Raca / Cor") +
ylab("Notas") +
facet_grid( ~ Turno_Graduacao) +
theme(axis.text.x = element_text(
angle = 90,
vjust = 0.5,
hjust = 1
))
ggplotly(boxplot)
grid.arrange(histograma, boxplot, nrow = 2, ncol = 1)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Analisando Renda familiar e Raça
prop.table(table(enade_historia_2017_Sem_NA$Renda_Familiar,
enade_historia_2017_Sem_NA$Raca_Cor)) %>% kbl %>% kable_styling()
| Amarela | Branca | Indígena | Não quero declarar | Parda | Preta | |
|---|---|---|---|---|---|---|
| Acima de 30 salários mínimos (mais de R$ 28.110,00) | 0.0000000 | 0.0025418 | 0.0000000 | 0.0002824 | 0.0002824 | 0.0000000 |
| Até 1,5 salário mínimo (até R$ 1.405,50) | 0.0060016 | 0.0945421 | 0.0034597 | 0.0137683 | 0.1267387 | 0.0636165 |
| De 1,5 a 3 salários mínimos (R$ 1.405,51 a R$ 2.811,00) | 0.0053661 | 0.1347878 | 0.0018358 | 0.0148980 | 0.1092989 | 0.0480124 |
| De 10 a 30 salários mínimos (R$ 9.370,01 a R$ 28.110,00) | 0.0002118 | 0.0204053 | 0.0001412 | 0.0019064 | 0.0066370 | 0.0017652 |
| De 3 a 4,5 salários mínimos (R$ 2.811,01 a R$ 4.216,50) | 0.0022594 | 0.0938361 | 0.0010591 | 0.0097437 | 0.0555673 | 0.0244299 |
| De 4,5 a 6 salários mínimos (R$ 4.216,51 a R$ 5.622,00). | 0.0010591 | 0.0462473 | 0.0004942 | 0.0040952 | 0.0233708 | 0.0096025 |
| De 6 a 10 salários mínimos (R$ 5.622,01 a R$ 9.370,00) | 0.0007061 | 0.0436348 | 0.0002824 | 0.0038834 | 0.0172280 | 0.0060016 |
enade_historia3 = enade_historia_2017_Sem_NA %>%
select(Raca_Cor, Renda_Familiar, NT_GER) %>%
group_by(Raca_Cor, Renda_Familiar) %>%
summarise(
Quantidade = n(),
MediaNota = mean(NT_GER, na.rm = T),
Mediana = median(NT_GER, na.rm = T),
CV = sd(NT_GER, na.rm = T) / MediaNota * 100,
AmplitudeInterquartil = IQR(NT_GER),
assimetria = skewness(NT_GER),
curtose = kurtosis(NT_GER)
) %>%
arrange(desc(Mediana))
## `summarise()` regrouping output by 'Raca_Cor' (override with `.groups` argument)
enade_historia3 %>% kbl %>% kable_styling(full_width = F)
| Raca_Cor | Renda_Familiar | Quantidade | MediaNota | Mediana | CV | AmplitudeInterquartil | assimetria | curtose |
|---|---|---|---|---|---|---|---|---|
| Branca | De 10 a 30 salários mínimos (R$ 9.370,01 a R$ 28.110,00) | 289 | 55.59585 | 57.50 | 26.011774 | 19.000 | -0.3159253 | -0.1327697 |
| Parda | Acima de 30 salários mínimos (mais de R$ 28.110,00) | 4 | 51.72500 | 56.10 | 36.634016 | 24.375 | -0.3084677 | -2.0906139 |
| Branca | Acima de 30 salários mínimos (mais de R$ 28.110,00) | 36 | 55.76111 | 55.15 | 20.150144 | 12.750 | 0.2936256 | -0.1448773 |
| Preta | De 10 a 30 salários mínimos (R$ 9.370,01 a R$ 28.110,00) | 25 | 54.89600 | 55.00 | 22.383746 | 13.000 | -1.0986656 | 2.5625618 |
| Parda | De 10 a 30 salários mínimos (R$ 9.370,01 a R$ 28.110,00) | 94 | 51.63085 | 52.75 | 29.114504 | 18.625 | -0.6031806 | 0.3828380 |
| Não quero declarar | De 6 a 10 salários mínimos (R$ 5.622,01 a R$ 9.370,00) | 55 | 50.31455 | 52.40 | 36.063508 | 21.500 | -0.8046712 | 0.3212118 |
| Não quero declarar | De 4,5 a 6 salários mínimos (R$ 4.216,51 a R$ 5.622,00). | 58 | 46.51897 | 50.80 | 38.322067 | 20.600 | -0.4972811 | -0.2120873 |
| Indígena | De 10 a 30 salários mínimos (R$ 9.370,01 a R$ 28.110,00) | 2 | 50.75000 | 50.75 | 3.483285 | 1.250 | 0.0000000 | -2.7500000 |
| Branca | De 6 a 10 salários mínimos (R$ 5.622,01 a R$ 9.370,00) | 618 | 49.41699 | 50.45 | 30.458367 | 19.325 | -0.3223135 | 0.0159366 |
| Amarela | De 10 a 30 salários mínimos (R$ 9.370,01 a R$ 28.110,00) | 3 | 49.93333 | 49.90 | 5.707903 | 2.850 | 0.0116937 | -2.3333333 |
| Branca | De 4,5 a 6 salários mínimos (R$ 4.216,51 a R$ 5.622,00). | 655 | 48.04015 | 48.40 | 30.502716 | 22.000 | -0.1121815 | -0.5216363 |
| Não quero declarar | De 10 a 30 salários mínimos (R$ 9.370,01 a R$ 28.110,00) | 27 | 48.26296 | 48.40 | 38.600437 | 21.850 | -0.4644346 | -0.4686908 |
| Indígena | De 6 a 10 salários mínimos (R$ 5.622,01 a R$ 9.370,00) | 4 | 51.35000 | 48.30 | 41.616044 | 21.000 | 0.2830050 | -1.9411826 |
| Não quero declarar | De 3 a 4,5 salários mínimos (R$ 2.811,01 a R$ 4.216,50) | 138 | 47.33116 | 47.85 | 31.064376 | 19.175 | -0.3767798 | 0.5329958 |
| Parda | De 6 a 10 salários mínimos (R$ 5.622,01 a R$ 9.370,00) | 244 | 48.13197 | 47.60 | 29.478813 | 21.875 | 0.1065208 | -0.7090444 |
| Preta | De 6 a 10 salários mínimos (R$ 5.622,01 a R$ 9.370,00) | 85 | 45.49059 | 47.30 | 35.074372 | 23.900 | -0.3722412 | -0.5313342 |
| Não quero declarar | Acima de 30 salários mínimos (mais de R$ 28.110,00) | 4 | 46.40000 | 46.95 | 37.875891 | 27.900 | -0.0201294 | -2.3885977 |
| Preta | De 4,5 a 6 salários mínimos (R$ 4.216,51 a R$ 5.622,00). | 136 | 44.78529 | 46.65 | 33.052256 | 19.700 | -0.3217773 | 0.3580806 |
| Branca | De 3 a 4,5 salários mínimos (R$ 2.811,01 a R$ 4.216,50) | 1329 | 46.19142 | 46.40 | 31.746123 | 20.500 | -0.0926032 | -0.1784155 |
| Parda | De 4,5 a 6 salários mínimos (R$ 4.216,51 a R$ 5.622,00). | 331 | 46.15468 | 46.30 | 32.008563 | 20.650 | -0.0167756 | -0.3154591 |
| Indígena | De 4,5 a 6 salários mínimos (R$ 4.216,51 a R$ 5.622,00). | 7 | 45.61429 | 46.10 | 27.361404 | 14.150 | 0.4332468 | -1.2133183 |
| Não quero declarar | De 1,5 a 3 salários mínimos (R$ 1.405,51 a R$ 2.811,00) | 211 | 44.47536 | 45.90 | 31.131234 | 20.300 | -0.3282362 | 0.1456391 |
| Amarela | De 3 a 4,5 salários mínimos (R$ 2.811,01 a R$ 4.216,50) | 32 | 46.23438 | 44.60 | 33.820985 | 28.725 | 0.1383614 | -1.4855476 |
| Branca | De 1,5 a 3 salários mínimos (R$ 1.405,51 a R$ 2.811,00) | 1909 | 44.26307 | 44.20 | 31.832729 | 19.800 | 0.0007558 | -0.2641856 |
| Não quero declarar | Até 1,5 salário mínimo (até R$ 1.405,50) | 195 | 42.40769 | 44.10 | 36.817516 | 20.950 | -0.4790011 | 0.1269771 |
| Parda | De 3 a 4,5 salários mínimos (R$ 2.811,01 a R$ 4.216,50) | 787 | 43.05947 | 43.30 | 32.324978 | 19.700 | -0.0604088 | -0.2245132 |
| Preta | De 1,5 a 3 salários mínimos (R$ 1.405,51 a R$ 2.811,00) | 680 | 42.31676 | 42.10 | 33.167967 | 19.125 | -0.0708628 | 0.0729052 |
| Branca | Até 1,5 salário mínimo (até R$ 1.405,50) | 1339 | 41.83779 | 41.40 | 34.585496 | 20.500 | 0.0310309 | -0.4413465 |
| Amarela | De 1,5 a 3 salários mínimos (R$ 1.405,51 a R$ 2.811,00) | 76 | 40.83947 | 41.05 | 37.671159 | 20.925 | 0.1372554 | -0.5725849 |
| Amarela | De 4,5 a 6 salários mínimos (R$ 4.216,51 a R$ 5.622,00). | 15 | 43.32667 | 41.00 | 32.908726 | 21.700 | -0.0632083 | -0.8997702 |
| Parda | De 1,5 a 3 salários mínimos (R$ 1.405,51 a R$ 2.811,00) | 1548 | 41.55820 | 40.90 | 33.344122 | 19.700 | 0.1317814 | -0.2882463 |
| Preta | De 3 a 4,5 salários mínimos (R$ 2.811,01 a R$ 4.216,50) | 346 | 41.01879 | 40.65 | 33.384947 | 19.400 | -0.0451451 | -0.2224203 |
| Preta | Até 1,5 salário mínimo (até R$ 1.405,50) | 901 | 40.10266 | 40.10 | 34.073254 | 19.400 | 0.0212818 | -0.3499733 |
| Indígena | De 1,5 a 3 salários mínimos (R$ 1.405,51 a R$ 2.811,00) | 26 | 38.32692 | 40.05 | 36.266188 | 18.450 | -0.2463574 | -0.2190434 |
| Parda | Até 1,5 salário mínimo (até R$ 1.405,50) | 1795 | 39.27259 | 38.80 | 34.003821 | 18.950 | 0.0934861 | -0.3285444 |
| Amarela | Até 1,5 salário mínimo (até R$ 1.405,50) | 85 | 38.99647 | 38.50 | 31.266572 | 16.800 | 0.0638005 | 0.6156340 |
| Amarela | De 6 a 10 salários mínimos (R$ 5.622,01 a R$ 9.370,00) | 10 | 37.84000 | 37.60 | 52.274719 | 30.575 | -0.1783932 | -1.7028779 |
| Indígena | Até 1,5 salário mínimo (até R$ 1.405,50) | 49 | 36.62041 | 33.00 | 40.192410 | 23.000 | 0.4659845 | -0.7469942 |
| Indígena | De 3 a 4,5 salários mínimos (R$ 2.811,01 a R$ 4.216,50) | 15 | 32.78000 | 28.40 | 33.492446 | 17.250 | 0.4422869 | -1.4002112 |
Outro ponto que chama atenção é a diferença entre a média das notas gerais de pessoas que se declaram Brancas e com Renda Familiar entre 10 e 30 salários mínimos, com média 55.59 e pessoas que se declaram Indígenas, que, apesar da pouca quantidade, obtiveram média bem abaixo.
#Histograma
histograma = ggplot(enade_historia_2017_Sem_NA, aes(x = NT_GER, fill = Renda_Familiar)) +
geom_histogram() +
ggtitle("Gráfico histograma da Nota por renda familiar do aluno") +
xlab("Notas") +
ylab("Frequência simples") +
facet_grid( ~ Renda_Familiar)
ggplotly(histograma)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
boxplot = ggplot(enade_historia_2017_Sem_NA, aes(x = Raca_Cor, y = NT_GER, fill =
Raca_Cor)) +
geom_boxplot() +
ggtitle("Gráfico de Box-plot da Nota por raça/cor e renda familiar") +
xlab("Raca / Cor") +
ylab("Notas") +
facet_grid( ~ Renda_Familiar) +
theme(axis.text.x = element_text(
angle = 90,
vjust = 0.5,
hjust = 1
))
ggplotly(boxplot)